Static Call Graph - [.\Objects\easyweb.axf]

# Static Call Graph for image .\Objects\easyweb.axf

#<CALLGRAPH># ARM Linker, RVCT3.1 [Build 942]: Last Updated: Sun Aug 02 13:11:07 2009

### Maximum Stack Usage = 104 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)

### Call chain for Maximum Stack Depth:

main ⇒ DoNetworkStuff ⇒ ProcessEthIAFrame ⇒ ProcessTCPFrame ⇒ PrepareTCP_FRAME ⇒ CalcChecksum

### Functions with no stack information

- Reset_Handler
- Undef_Handler
- SWI_Handler
- PAbt_Handler
- DAbt_Handler
- IRQ_Handler
- FIQ_Handler

### Mutually Recursive functions

- Undef_Handler ⇒ Undef_Handler
- SWI_Handler ⇒ SWI_Handler
- PAbt_Handler ⇒ PAbt_Handler
- DAbt_Handler ⇒ DAbt_Handler
- IRQ_Handler ⇒ IRQ_Handler
- FIQ_Handler ⇒ FIQ_Handler

  ### Function Pointers

  - Reset_Handler
  - Undef_Handler
  - SWI_Handler
  - PAbt_Handler
  - DAbt_Handler
  - IRQ_Handler
  - FIQ_Handler
  - __main
  - TCPClockHandler
  - main

  ### Global Symbols

  Reset_Handler (ARM, 0 bytes, Stack size unknown bytes, lpc2300.o(RESET))
  [Address Reference Count : 1]

  - lpc2300.o(RESET)

  __main (ARM, 8 bytes, Stack size 0 bytes, entry.o($$startup$$))
  [Calls]

  - >> __init (via Veneer)

  __call_main (Thumb, 2 bytes, Stack size 0 bytes, init.o(.emb_text))
  [Called By]

  - >> __init

  main (Thumb, 32 bytes, Stack size 8 bytes, easyweb.o(.text))
  [Stack]

  - Max Depth = 104
  - Call Chain = main ⇒ DoNetworkStuff ⇒ ProcessEthIAFrame ⇒ ProcessTCPFrame ⇒ PrepareTCP_FRAME ⇒ CalcChecksum
  [Calls]
  - >> TCPPassiveOpen
  - >> TCPLowLevelInit
  - >> DoNetworkStuff
  [Address Reference Count : 1]
  - init.o(.text)

  TCPLowLevelInit (Thumb, 76 bytes, Stack size 8 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 40
  - Call Chain = TCPLowLevelInit ⇒ Init_EMAC ⇒ rx_descr_init
  [Calls]
  - >> Init_EMAC
  [Called By]
  - >> main

  TCPPassiveOpen (Thumb, 26 bytes, Stack size 0 bytes, tcpip.o(.text))
  [Called By]

  - >> main

  TCPStartRetryTimer (Thumb, 30 bytes, Stack size 0 bytes, tcpip.o(.text))
  [Called By]

  - >> ProcessTCPFrame
  - >> TCPTransmitTxBuffer
  - >> TCPActiveOpen
  - >> DoNetworkStuff

  PrepareARP_REQUEST (Thumb, 146 bytes, Stack size 16 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = PrepareARP_REQUEST
  [Calls]
  - >> __aeabi_memclr
  - >> __aeabi_memset
  - >> __aeabi_memcpy
  [Called By]
  - >> TCPHandleRetransmission
  - >> TCPActiveOpen

  TCPActiveOpen (Thumb, 52 bytes, Stack size 8 bytes, tcpip.o(.text), UNUSED)
  [Calls]

  - >> PrepareARP_REQUEST
  - >> TCPStartRetryTimer

  TCPClose (Thumb, 42 bytes, Stack size 0 bytes, tcpip.o(.text), UNUSED)

  TCPReleaseRxBuffer (Thumb, 12 bytes, Stack size 0 bytes, tcpip.o(.text), UNUSED)

  TCPTransmitTxBuffer (Thumb, 64 bytes, Stack size 0 bytes, tcpip.o(.text), UNUSED)
  [Calls]

  - >> TCPStartRetryTimer

  IsBroadcast (Thumb, 60 bytes, Stack size 16 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = IsBroadcast ⇒ CopyFromFrame_EMAC
  [Calls]
  - >> StartReadFrame
  - >> CopyFromFrame_EMAC
  [Called By]
  - >> DoNetworkStuff

  SendFrame1 (Thumb, 14 bytes, Stack size 8 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = SendFrame1 ⇒ CopyToFrame_EMAC
  [Calls]
  - >> CopyToFrame_EMAC
  [Called By]
  - >> DoNetworkStuff

  CalcChecksum (Thumb, 94 bytes, Stack size 8 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = CalcChecksum
  [Called By]
  - >> PrepareICMP_ECHO_REPLY
  - >> PrepareTCP_FRAME
  - >> PrepareTCP_DATA_FRAME

  WriteDWBE (Thumb, 16 bytes, Stack size 0 bytes, tcpip.o(.text))
  [Called By]

  - >> PrepareTCP_FRAME
  - >> PrepareTCP_DATA_FRAME

  WriteWBE (Thumb, 8 bytes, Stack size 0 bytes, tcpip.o(.text))
  [Called By]

  - >> PrepareICMP_ECHO_REPLY
  - >> PrepareTCP_FRAME
  - >> PrepareTCP_DATA_FRAME

  PrepareTCP_DATA_FRAME (Thumb, 182 bytes, Stack size 16 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = PrepareTCP_DATA_FRAME ⇒ CalcChecksum
  [Calls]
  - >> __aeabi_memcpy
  - >> WriteWBE
  - >> WriteDWBE
  - >> CalcChecksum
  [Called By]
  - >> DoNetworkStuff

  SendFrame2 (Thumb, 14 bytes, Stack size 8 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 20
  - Call Chain = SendFrame2 ⇒ CopyToFrame_EMAC
  [Calls]
  - >> CopyToFrame_EMAC
  [Called By]
  - >> DoNetworkStuff

  PrepareTCP_FRAME (Thumb, 384 bytes, Stack size 16 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = PrepareTCP_FRAME ⇒ CalcChecksum
  [Calls]
  - >> __aeabi_memcpy
  - >> WriteWBE
  - >> WriteDWBE
  - >> CalcChecksum
  [Called By]
  - >> ProcessTCPFrame
  - >> TCPHandleRetransmission
  - >> DoNetworkStuff

  TCPHandleTimeout (Thumb, 32 bytes, Stack size 0 bytes, tcpip.o(.text))
  [Called By]

  - >> DoNetworkStuff

  TCPStopTimer (Thumb, 12 bytes, Stack size 0 bytes, tcpip.o(.text))
  [Called By]

  - >> ProcessEthIAFrame
  - >> ProcessTCPFrame
  - >> DoNetworkStuff

  TCPHandleRetransmission (Thumb, 52 bytes, Stack size 8 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = TCPHandleRetransmission ⇒ PrepareTCP_FRAME ⇒ CalcChecksum
  [Calls]
  - >> __ARM_switch8 (via Veneer)
  - >> PrepareTCP_FRAME
  - >> PrepareARP_REQUEST
  [Called By]
  - >> DoNetworkStuff

  TCPRestartTimer (Thumb, 8 bytes, Stack size 0 bytes, tcpip.o(.text), UNUSED)

  TCPStartTimeWaitTimer (Thumb, 26 bytes, Stack size 0 bytes, tcpip.o(.text))
  [Called By]

  - >> ProcessTCPFrame

  ProcessTCPFrame (Thumb, 752 bytes, Stack size 32 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 56
  - Call Chain = ProcessTCPFrame ⇒ PrepareTCP_FRAME ⇒ CalcChecksum
  [Calls]
  - >> memcmp
  - >> __aeabi_memcpy
  - >> __ARM_switch8 (via Veneer)
  - >> ReadFrameBE_EMAC
  - >> DummyReadFrame_EMAC
  - >> CopyFromFrame_EMAC
  - >> TCPStartTimeWaitTimer
  - >> TCPStopTimer
  - >> PrepareTCP_FRAME
  - >> TCPStartRetryTimer
  [Called By]
  - >> ProcessEthIAFrame

  PrepareICMP_ECHO_REPLY (Thumb, 258 bytes, Stack size 16 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 24
  - Call Chain = PrepareICMP_ECHO_REPLY ⇒ CopyFromFrame_EMAC
  [Calls]
  - >> __aeabi_memcpy
  - >> CopyFromFrame_EMAC
  - >> WriteWBE
  - >> CalcChecksum
  [Called By]
  - >> ProcessICMPFrame

  ProcessICMPFrame (Thumb, 24 bytes, Stack size 8 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = ProcessICMPFrame ⇒ PrepareICMP_ECHO_REPLY ⇒ CopyFromFrame_EMAC
  [Calls]
  - >> ReadFrameBE_EMAC
  - >> PrepareICMP_ECHO_REPLY
  [Called By]
  - >> ProcessEthIAFrame

  ProcessEthIAFrame (Thumb, 182 bytes, Stack size 16 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 72
  - Call Chain = ProcessEthIAFrame ⇒ ProcessTCPFrame ⇒ PrepareTCP_FRAME ⇒ CalcChecksum
  [Calls]
  - >> memcmp
  - >> ReadFrameBE_EMAC
  - >> CopyFromFrame_EMAC
  - >> ProcessICMPFrame
  - >> ProcessTCPFrame
  - >> TCPStopTimer
  [Called By]
  - >> DoNetworkStuff

  PrepareARP_ANSWER (Thumb, 112 bytes, Stack size 8 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = PrepareARP_ANSWER
  [Calls]
  - >> __aeabi_memcpy
  [Called By]
  - >> ProcessEthBroadcastFrame

  ProcessEthBroadcastFrame (Thumb, 102 bytes, Stack size 8 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 16
  - Call Chain = ProcessEthBroadcastFrame ⇒ memcmp
  [Calls]
  - >> memcmp
  - >> ReadFrameBE_EMAC
  - >> DummyReadFrame_EMAC
  - >> CopyFromFrame_EMAC
  - >> PrepareARP_ANSWER
  [Called By]
  - >> DoNetworkStuff

  DoNetworkStuff (Thumb, 376 bytes, Stack size 24 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 96
  - Call Chain = DoNetworkStuff ⇒ ProcessEthIAFrame ⇒ ProcessTCPFrame ⇒ PrepareTCP_FRAME ⇒ CalcChecksum
  [Calls]
  - >> __ARM_switch8 (via Veneer)
  - >> RequestSend
  - >> Rdy4Tx
  - >> EndReadFrame
  - >> CheckFrameReceived
  - >> ProcessEthBroadcastFrame
  - >> ProcessEthIAFrame
  - >> TCPHandleRetransmission
  - >> TCPStopTimer
  - >> TCPHandleTimeout
  - >> PrepareTCP_FRAME
  - >> SendFrame2
  - >> PrepareTCP_DATA_FRAME
  - >> SendFrame1
  - >> IsBroadcast
  - >> TCPStartRetryTimer
  [Called By]
  - >> main

  SwapBytes (Thumb, 12 bytes, Stack size 0 bytes, tcpip.o(.text))
  [Called By]

  - >> ReadFrameBE_EMAC

  TCPClockHandler (ARM, 64 bytes, Stack size 8 bytes, tcpip.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = TCPClockHandler
  [Address Reference Count : 1]
  - tcpip.o(.text)

  write_PHY (Thumb, 32 bytes, Stack size 0 bytes, emac.o(.text))
  [Called By]

  - >> Init_EMAC

  read_PHY (Thumb, 42 bytes, Stack size 0 bytes, emac.o(.text))
  [Called By]

  - >> Init_EMAC

  rx_descr_init (Thumb, 60 bytes, Stack size 12 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = rx_descr_init
  [Called By]
  - >> Init_EMAC

  tx_descr_init (Thumb, 60 bytes, Stack size 8 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = tx_descr_init
  [Called By]
  - >> Init_EMAC

  Init_EMAC (Thumb, 316 bytes, Stack size 20 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 32
  - Call Chain = Init_EMAC ⇒ rx_descr_init
  [Calls]
  - >> tx_descr_init
  - >> rx_descr_init
  - >> read_PHY
  - >> write_PHY
  [Called By]
  - >> TCPLowLevelInit

  ReadFrame_EMAC (Thumb, 12 bytes, Stack size 0 bytes, emac.o(.text))
  [Called By]

  - >> DummyReadFrame_EMAC
  - >> CopyFromFrame_EMAC

  ReadFrameBE_EMAC (Thumb, 22 bytes, Stack size 8 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = ReadFrameBE_EMAC
  [Calls]
  - >> SwapBytes
  [Called By]
  - >> ProcessEthBroadcastFrame
  - >> ProcessEthIAFrame
  - >> ProcessICMPFrame
  - >> ProcessTCPFrame

  CopyFromFrame_EMAC (Thumb, 38 bytes, Stack size 8 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = CopyFromFrame_EMAC
  [Calls]
  - >> ReadFrame_EMAC
  [Called By]
  - >> ProcessEthBroadcastFrame
  - >> ProcessEthIAFrame
  - >> PrepareICMP_ECHO_REPLY
  - >> ProcessTCPFrame
  - >> IsBroadcast

  DummyReadFrame_EMAC (Thumb, 24 bytes, Stack size 4 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = DummyReadFrame_EMAC
  [Calls]
  - >> ReadFrame_EMAC
  [Called By]
  - >> ProcessEthBroadcastFrame
  - >> ProcessTCPFrame

  StartReadFrame (Thumb, 32 bytes, Stack size 0 bytes, emac.o(.text))
  [Called By]

  - >> IsBroadcast

  EndReadFrame (Thumb, 16 bytes, Stack size 0 bytes, emac.o(.text))
  [Called By]

  - >> DoNetworkStuff

  CheckFrameReceived (Thumb, 18 bytes, Stack size 0 bytes, emac.o(.text))
  [Called By]

  - >> DoNetworkStuff

  RequestSend (Thumb, 32 bytes, Stack size 4 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 4
  - Call Chain = RequestSend
  [Called By]
  - >> DoNetworkStuff

  Rdy4Tx (Thumb, 4 bytes, Stack size 0 bytes, emac.o(.text))
  [Called By]

  - >> DoNetworkStuff

  WriteFrame_EMAC (Thumb, 12 bytes, Stack size 0 bytes, emac.o(.text))
  [Called By]

  - >> CopyToFrame_EMAC

  CopyToFrame_EMAC (Thumb, 50 bytes, Stack size 12 bytes, emac.o(.text))
  [Stack]

  - Max Depth = 12
  - Call Chain = CopyToFrame_EMAC
  [Calls]
  - >> WriteFrame_EMAC
  [Called By]
  - >> SendFrame2
  - >> SendFrame1

  __ARM_switch8 (ARM, 24 bytes, Stack size 0 bytes, switch8.o(.text))
  [Called By]

  - >> ProcessTCPFrame (via Veneer)
  - >> TCPHandleRetransmission (via Veneer)
  - >> DoNetworkStuff (via Veneer)

  __rt_switch8 (ARM, 0 bytes, Stack size 0 bytes, switch8.o(.text), UNUSED)

  __aeabi_memcpy (Thumb, 36 bytes, Stack size 0 bytes, memcpya.o(.text))
  [Called By]

  - >> PrepareARP_ANSWER
  - >> PrepareICMP_ECHO_REPLY
  - >> ProcessTCPFrame
  - >> PrepareTCP_FRAME
  - >> PrepareTCP_DATA_FRAME
  - >> PrepareARP_REQUEST

  __aeabi_memcpy4 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)

  __aeabi_memcpy8 (Thumb, 0 bytes, Stack size 0 bytes, memcpya.o(.text), UNUSED)

  __aeabi_memset (Thumb, 16 bytes, Stack size 0 bytes, memseta.o(.text))
  [Called By]

  - >> _memset_wrapper
  - >> __aeabi_memclr
  - >> PrepareARP_REQUEST

  __aeabi_memset4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

  __aeabi_memset8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

  __aeabi_memclr (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text))
  [Calls]

  - >> __aeabi_memset
  [Called By]
  - >> PrepareARP_REQUEST

  __aeabi_memclr4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

  __aeabi_memclr8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)

  _memset_wrapper (Thumb, 24 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)
  [Calls]

  - >> __aeabi_memset

  memcmp (Thumb, 28 bytes, Stack size 8 bytes, memcmp.o(.text))
  [Stack]

  - Max Depth = 8
  - Call Chain = memcmp
  [Called By]
  - >> ProcessEthBroadcastFrame
  - >> ProcessEthIAFrame
  - >> ProcessTCPFrame

  __init (Thumb, 26 bytes, Stack size 0 bytes, init.o(.text))
  [Calls]

  - >> __ARM_call_via_r3
  - >> __call_main
  [Called By]
  - >> __main (via Veneer)

  __scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)

  __ARM_call_via_r0 (Thumb, 2 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)

  __call_via_r0 (Thumb, 0 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)

  __ARM_call_via_r1 (Thumb, 2 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)

  __call_via_r1 (Thumb, 0 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)

  __ARM_call_via_r2 (Thumb, 2 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)

  __call_via_r2 (Thumb, 0 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)

  __ARM_call_via_r3 (Thumb, 2 bytes, Stack size unknown bytes, callvia.o(.text))
  [Called By]

  - >> __init

  __call_via_r3 (Thumb, 0 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)

  __ARM_call_via_r4 (Thumb, 2 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)

  __call_via_r4 (Thumb, 0 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)

  __ARM_call_via_r5 (Thumb, 2 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)

  __call_via_r5 (Thumb, 0 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)

  __ARM_call_via_r6 (Thumb, 2 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)

  __call_via_r6 (Thumb, 0 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)

  __ARM_call_via_r7 (Thumb, 2 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)

  __call_via_r7 (Thumb, 0 bytes, Stack size unknown bytes, callvia.o(.text), UNUSED)

  __scatterload_copy (ARM, 24 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
  [Calls]

  - >> __scatterload_copy
  [Called By]
  - >> __scatterload_copy

  __scatterload_null (ARM, 4 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)

  __scatterload_zeroinit (ARM, 24 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)

  ### Local Symbols

  Undef_Handler (ARM, 4 bytes, Stack size unknown bytes, lpc2300.o(RESET))
  [Calls]

  - >> Undef_Handler
  [Called By]
  - >> Undef_Handler
  [Address Reference Count : 1]
  - lpc2300.o(RESET)

  SWI_Handler (ARM, 4 bytes, Stack size unknown bytes, lpc2300.o(RESET))
  [Calls]

  - >> SWI_Handler
  [Called By]
  - >> SWI_Handler
  [Address Reference Count : 1]
  - lpc2300.o(RESET)

  PAbt_Handler (ARM, 4 bytes, Stack size unknown bytes, lpc2300.o(RESET))
  [Calls]

  - >> PAbt_Handler
  [Called By]
  - >> PAbt_Handler
  [Address Reference Count : 1]
  - lpc2300.o(RESET)

  DAbt_Handler (ARM, 4 bytes, Stack size unknown bytes, lpc2300.o(RESET))
  [Calls]

  - >> DAbt_Handler
  [Called By]
  - >> DAbt_Handler
  [Address Reference Count : 1]
  - lpc2300.o(RESET)

  IRQ_Handler (ARM, 4 bytes, Stack size unknown bytes, lpc2300.o(RESET))
  [Calls]

  - >> IRQ_Handler
  [Called By]
  - >> IRQ_Handler
  [Address Reference Count : 1]
  - lpc2300.o(RESET)

  FIQ_Handler (ARM, 4 bytes, Stack size unknown bytes, lpc2300.o(RESET))
  [Calls]

  - >> FIQ_Handler
  [Called By]
  - >> FIQ_Handler
  [Address Reference Count : 1]
  - lpc2300.o(RESET)

  ### Undefined Global Symbols